home *** CD-ROM | disk | FTP | other *** search
- <?php
- require_once('../wp-config.php');
- /**
- ** get_option_widget()
- ** parameters:
- ** option_result - result set containing option_id, option_name, option_type,
- ** option_value, option_description, option_admin_level
- ** editable - flag to determine whether the returned widget will be editable
- **/
- function get_option_widget($option_result, $editable, $between)
- {
- global $wpdb, $tableoptionvalues;
- $disabled = $editable ? '' : 'disabled';
-
- switch ($option_result->option_type) {
- case 1: // integer
- case 3: // string
- case 8: // float
- case 6: // range -- treat same as integer for now!
- if (($option_result->option_type == 1) || ($option_result->option_type == 1)) {
- $width = 6;
- } else {
- $width = $option_result->option_width;
- }
- return <<<TEXTINPUT
- <label for="$option_result->option_name">$option_result->option_name</label>$between
- <input type="text" name="$option_result->option_name" size="$width" value="$option_result->option_value" $disabled/>
- TEXTINPUT;
- //break;
-
- case 2: // boolean
- $true_selected = ($option_result->option_value == '1') ? 'selected' : '';
- $false_selected = ($option_result->option_value == '0') ? 'selected' : '';
- return <<<BOOLSELECT
- <label for="$option_result->option_name">$option_result->option_name</label>$between
- <select name="$option_result->option_name" $disabled>
- <option value="1" $true_selected>true</option>
- <option value="0" $false_selected>false</option>
- </select>
- BOOLSELECT;
- //break;
-
- case 5: // select
- $ret = <<<SELECT
- <label for="$option_result->option_name">$option_result->option_name</label>$between
- <select name="$option_result->option_name" id="$option_result->option_name" $disabled>
- SELECT;
-
- $select = $wpdb->get_results("SELECT optionvalue, optionvalue_desc "
- ."FROM $tableoptionvalues "
- ."WHERE option_id = $option_result->option_id "
- ."ORDER BY optionvalue_seq");
- if ($select) {
- foreach($select as $option) {
- $ret .= '<option value="'.$option->optionvalue.'"';
- //error_log("comparing [$option_result->option_value] == [$option->optionvalue]");
- if ($option_result->option_value == $option->optionvalue) {
- $ret .=' selected';
- }
- $ret .= ">$option->optionvalue_desc</option>\n";
- }
- }
- $ret .= '</select>';
- return $ret;
- //break;
-
- case 7: // SQL select
- // first get the sql to run
- $sql = $wpdb->get_var("SELECT optionvalue FROM $tableoptionvalues WHERE option_id = $option_result->option_id");
- if (!$sql) {
- return $option_result->option_name . $editable;
- }
-
- // now we may need to do table name substitution
- eval("include('../wp-config.php');\$sql = \"$sql\";");
-
- $ret = <<<SELECT
- <label for="$option_result->option_name">$option_result->option_name</label>$between
- <select name="$option_result->option_name" $disabled>
- SELECT;
-
- $select = $wpdb->get_results("$sql");
- if ($select) {
- foreach($select as $option) {
- $ret .= '<option value="'.$option->value.'"';
- //error_log("comparing [$option_result->option_value] == [$option->optionvalue]");
- if ($option_result->option_value == $option->value) {
- $ret .=' selected';
- }
- $ret .= ">$option->label</option>\n";
- }
- }
- $ret .= '</select>';
- return $ret;
- //break;
-
- } // end switch
- return $option_result->option_name . $editable;
- } // end function get_option_widget
-
-
- function validate_option($option, $name, $val) {
- global $wpdb, $tableoptionvalues;
- $msg = '';
- switch ($option->option_type) {
- case 6: // range
- // get range
- $range = $wpdb->get_row("SELECT optionvalue_max, optionvalue_min FROM $tableoptionvalues WHERE option_id = $option->option_id");
- if ($range) {
- if (($val < $range->optionvalue_min) || ($val > $range->optionvalue_max)) {
- $msg = "$name is outside the valid range ($range->optionvalue_min - $range->optionvalue_max). ";
- }
- }
- } // end switch
- return $msg;
- } // end validate_option
-
- ?>